//package com.hsq.ndmall.order.config;
//import com.hsq.ndmall.common.constant.OrderRabbitMQ;
//import com.hsq.ndmall.common.constant.RabbitMQProperties;
//import org.springframework.amqp.core.*;
//import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
//import org.springframework.amqp.support.converter.MessageConverter;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
///**
// * @author 黄四清
// * @version 1.0.0
// * @ClassName RabbitConfig.java
// * @Description TODO rabbit配置类
// * @createTime 2021年09月03日 16:43:00
// */
//@Configuration
//public class RabbitConfig {
//
////    // 序列化
////    @Bean
////    public MessageConverter messageConverter(){
////        return new Jackson2JsonMessageConverter();
////    }
//
//    // TODO 1、一个交换机
//    @Bean
//    public TopicExchange demo6Exchange(){
//        return  new TopicExchange(OrderRabbitMQ.ORDER_EVENT_EXCHANGE,
//                true,  //持久化
//                false);  // 是否自动删除
//    }
//
//    // TODO 2、两个队列
//    //2.1 普通队列
//    @Bean
//    public Queue deadQueue(){
//        return new Queue(OrderRabbitMQ.ORDER_CLOSE_QUEUE,
//                true,
//                false,
//                false);
//    }
//    // 2.2 ssl队列
//    @Bean
//    public Queue ttlQueue(){
//        return QueueBuilder.durable(OrderRabbitMQ.ORDER_CREATE_QUEUE)
//                .exclusive()
//                .autoDelete()
//                .ttl(60000)
//                .deadLetterExchange(OrderRabbitMQ.ORDER_EVENT_EXCHANGE)   // 交换机
//                .deadLetterRoutingKey(OrderRabbitMQ.ORDER_CLOSE_MSG)  // 路由键
//                .build();
//    }
//
//    //TODO 3、将队列绑定到路由
//    @Bean
//    public Binding demo6DeadQueue(){
//        return BindingBuilder.bind(deadQueue()).to(demo6Exchange()).with(OrderRabbitMQ.ORDER_CLOSE_BINDINGKEY);
//    }
//
//    @Bean
//    public Binding demo6TtlQueue(){
//        return BindingBuilder.bind(ttlQueue()).to(demo6Exchange()).with(OrderRabbitMQ.ORDER_CREATE_BINDINGKEY);
//    }
//
//}
